1. Field of the Invention
The present invention relates to the processing of Integrated Services Digital Network (ISDN) calls, and more particularly to the making of outgoing calls and the receipt of incoming calls when a multiplicity of channels and protocols are available for use.
2. Prior Art
Integrated Services Digital Network (ISDN) is a set of internationally agreed standards specified in the so-called "Blue books" of the International Telegraph and Telephone Consultative Committee (CCITT). ISDN allows voice, data and other applications to communicate over wide bandwidth communications networks. ISDN defines a series of layers as well as the interfaces between these layers, through which voice or data can be passed from an application program onto the network and vice versa. Further information about ISDN can be found in, e.g., "ISDN Explained" by J. Griffiths (Wiley, 1990) and "ISDN: An Introduction" by W. Stallings (MacMillan 1989).
A standard or basic rate ISDN link comprises three channels multiplexed on a single physical line: one "D-channel" with a data rate of 16 kbits s.sup.-1, and two "B-channels", each with a data rate of 64 kbits s.sup.-1. The D-channel is primarily intended for signalling--e.g., setting up and finishing calls--and a standard protocol known as LAP-D ("Link Access Procedure for the D-channel") must be used. By contrast, the two B-channels ("bearer" channels) are essentially at the user's disposal to send information down, and can be thought of as analogous to hollow pipes. There is no network-provided error-checking on the B-channel, and no predetermined protocol, these being left instead to the user's discretion.
At the start of any call therefore, it is necessary for the calling and called parties to agree on the format or protocol that they will use on the B channel (examples of possible protocols are X.25 and System Network Architecture (SNA)). This agreement is performed as part of the call set-up procedure for messages sent on the B-channel. Once agreement has been reached on which protocol to use, the corresponding protocol stack can be built. A protocol stack is the body of code, representing the layers of the selected protocol, that is used to convert a call between the data format of the application and the format required for transmission. The code will normally be resident at the terminal, but will need initialization for each individual call--e.g. what buffer size to use, what values to set for a time out, if no response is received from the network or another layer in the communications system, and so on.
A problem has arisen in the implementation of such systems in that once the protocol for the B-channel has been selected, there is a delay of up to a few seconds (depending on processor speed) while the relevant protocol stack is built. There is a possibility that during this delay the network will misinterpret the inactivity, and disconnect the call. Alternatively, a premature indication that the terminal is ready may result in the terminal receiving data before the protocol is in place to interpret the incoming signals. Similar problems may also arise from the availability of two B channels, since initially neither party will be certain which channel will be allocated for the call.